London | 26-Java-June | Fatma Arslantas | Sprint 1 | Reverse Numbers#21
London | 26-Java-June | Fatma Arslantas | Sprint 1 | Reverse Numbers#21AFatmaa wants to merge 1 commit into
Conversation
| System.out.println("Reversed number: " + reversedNumber); | ||
| } | ||
|
|
||
| /** |
| int remaningNumber = number; | ||
|
|
||
| while (remaningNumber > 0) { | ||
| int digit = remaningNumber % 10; |
| int reversedNumber = 0; | ||
| int remaningNumber = number; | ||
|
|
||
| while (remaningNumber > 0) { |
There was a problem hiding this comment.
What changes would you have to make to get this working for negative numbers?
There was a problem hiding this comment.
To support negative numbers, I would handle the sign separately.
The current loop only works for positive numbers because it runs while remainingNumber > 0. For a negative number, I would first check whether the original number is negative, then reverse the absolute value of the number, and finally return the result as negative again if needed.
I could update the method like this:
private static int reverseNumber(int number) {
boolean isNegative = number < 0;
int remainingNumber = Math.abs(number);
int reversedNumber = 0;
while (remainingNumber > 0) {
int digit = remainingNumber % 10;
reversedNumber = reversedNumber * 10 + digit;
remainingNumber = remainingNumber / 10;
}
if (isNegative) {
return -reversedNumber;
}
return reversedNumber;
}For example, -3956 would return -6593.
Would this be a good way to handle negative numbers?
There was a problem hiding this comment.
Yep nice one - this looks good to me!!
|
This looks really good, Fatma 😄 I like how you've structured the class and the logic looks good. Left a question around working with negative numbers . |
|
Thank you @jabeywick! 🥳 I’ve just answered your question |
Learners, PR Template
Self checklist
Changelist
This PR adds the Sprint 1 Reverse Numbers exercise.
Changes:
ReverseNumbersclassmainmethod3956Example:
3956returns6593Questions
I don’t have any questions, thank you.